﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;

namespace QLKHACHHANG.DanhMucForm
{
    public partial class frmNhomSanPham : DevExpress.XtraEditors.XtraForm
    {
        frmCustomerConfig rootform;
        bool isSingle; //trang thai show tab       
        public frmNhomSanPham(frmCustomerConfig root)
        {
            InitializeComponent();
            rootform = root;
            isSingle = false;
        }
        public frmNhomSanPham()
        {
            InitializeComponent();
            isSingle = true;
        }

        private void frmNhomSanPham_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'ds_Nhomsanpham.tbl_NhomSanPham' table. You can move, or remove it, as needed.
            
            try
            {
                this.tbl_NhomSanPhamTableAdapter.Connection.ConnectionString = SetConfig.getAppSetting("ConnectionString");
                this.tbl_NhomSanPhamTableAdapter.Fill(this.ds_Nhomsanpham.tbl_NhomSanPham);
                gvNhomsanpham.FocusedRowHandle = -999997;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

        private void frmNhomSanPham_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("Bạn có muốn thoát khỏi màn hình " + this.Text + " ?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
            {
                if (!isSingle) rootform.UpdateDanhxung();
            }
            else
            {
                e.Cancel = true;
            }
        }
        private void ResetForm()
        {
            btThem.Text = "Lưu";
            txtManhomsanpham.Properties.ReadOnly = false;
            btXoa.Enabled = false;
            btSua.Enabled = false;
            txtManhomsanpham.Focus();
            txtManhomsanpham.Text = "";
            txtTennhomsanpham.Text = "";
            txtGhichu.Text = "";
            gvNhomsanpham.FocusedRowHandle = -999997;
        }

        private void btThem_Click(object sender, EventArgs e)
        {
            if (btThem.Text == "Thêm")
            {
                // reset
                ResetForm();
            }
            else
            {
                //luu 
                if (txtManhomsanpham.Text.Equals("") || txtTennhomsanpham.Text.Equals(""))
                {
                    MessageBox.Show("Vui lòng xem lại thông tin nhập vào !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                else
                {
                    try
                    {
                        DataRow row = ds_Nhomsanpham.tbl_NhomSanPham.NewRow();
                        row["Manhomsanpham"] = txtManhomsanpham.Text;
                        row["Tennhomsanpham"] = txtTennhomsanpham.Text;
                        row["Ghichu"] = txtGhichu.Text;
                        ds_Nhomsanpham.tbl_NhomSanPham.Rows.Add(row);
                        this.tbl_NhomSanPhamTableAdapter.Update(this.ds_Nhomsanpham.tbl_NhomSanPham);
                    }
                    catch (Exception ex)
                    {
                        if (ex.Message.Contains("constrained to be unique"))
                        {
                            MessageBox.Show("Không lưu được do thông tin đã bị trùng, xin vui lòng kiểm tra lại!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else MessageBox.Show("Lưu thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                }
                ResetForm();
            }
        }

        private void btXoa_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Bạn có muốn xóa danh xưng có mã: " + txtManhomsanpham.Text + " ?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    txtManhomsanpham.Text = "";
                    txtTennhomsanpham.Text = "";
                    txtGhichu.Text = "";
                    gvNhomsanpham.DeleteSelectedRows();
                    this.tbl_NhomSanPhamTableAdapter.Update(this.ds_Nhomsanpham.tbl_NhomSanPham);
                }

            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("conflicted"))
                {
                    MessageBox.Show("Không xóa đơợc do thông tin được sử dụng bởi chức năng khác, vui lòng kiểm tra lại!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else MessageBox.Show("Xoá thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.tbl_NhomSanPhamTableAdapter.Fill(this.ds_Nhomsanpham.tbl_NhomSanPham);
            }

        }

        private void btSua_Click(object sender, EventArgs e)
        {
            try
            {
                gvNhomsanpham.GetFocusedDataRow()["Tennhomsanpham"] = txtTennhomsanpham.Text;
                gvNhomsanpham.GetFocusedDataRow()["Ghichu"] = txtGhichu.Text;
                this.tbl_NhomSanPhamTableAdapter.Update(this.ds_Nhomsanpham.tbl_NhomSanPham);

            }
            catch (Exception ex)
            {
                MessageBox.Show("Sửa thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btThoat_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void gvNhomsanpham_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            if (gvNhomsanpham.FocusedRowHandle >= 0)
            {
                txtManhomsanpham.Text = gvNhomsanpham.GetFocusedDataRow()["Manhomsanpham"].ToString();
                txtTennhomsanpham.Text = gvNhomsanpham.GetFocusedDataRow()["Tennhomsanpham"].ToString();
                txtGhichu.Text = gvNhomsanpham.GetFocusedDataRow()["Ghichu"].ToString();
                txtManhomsanpham.Properties.ReadOnly = true;
                btSua.Enabled = true;
                btXoa.Enabled = true;
                btThem.Text = "Thêm";
            }
            else
            {
                ResetForm();
            }
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            this.tbl_NhomSanPhamTableAdapter.Fill(this.ds_Nhomsanpham.tbl_NhomSanPham);
        }
    }
}